package com.itheima.edu.info.manager.dao;

import com.itheima.edu.info.manager.domain.Teacher;
import com.itheima.edu.info.manager.util.AgeUtil;

import java.io.*;
import java.util.ArrayList;
import java.util.Properties;
import java.util.Scanner;

public class TeacherDao {
    private static ArrayList<Teacher> list = new ArrayList<Teacher>();

    //这是静态代码快,做一些初始化数据操作
    static {
        load();
    }

    //加载文件中的数据
    private static void load() {
        try {
            //1.创建缓冲字符输入流
            BufferedReader br = new BufferedReader(new FileReader("黑马学生管理系统3\\teachers.txt"));
            //2.创建临时变量
            String str;
            //3.循环读取
            while ((str = br.readLine()) != null) {
                String[] split = str.split(",");
                list.add(new Teacher(split[0], split[1], split[2], split[3]));
            }
            //4.关闭资源
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    //将集合中的数据保存到文件中去
    private static void reSave() {
        try {
            //1.创建缓冲字符输出流
            BufferedWriter bw = new BufferedWriter(new FileWriter("黑马学生管理系统3\\teachers.txt"));
            //2.遍历集合将集合中的数据转化成字符串写入文件中
            for (Teacher teacher : list) {
                bw.write(teacher.toString());
                //换行
                bw.newLine();
                //刷新流
                bw.flush();
            }
            //3.关闭资源
            bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //增加老师对象
    public void addTeacher(Teacher tea) {
        //库管添加老师对象
        list.add(tea);
        //添加后将集合中的数据保存到文件中
        reSave();
    }

    //删除老师对象
    public void deleteTeacher(int index) {
        //删除指定索引的老师对象
        list.remove(index);
        //保存集合中的数据到文件中
        reSave();
    }

    //修改老师对象
    public boolean updateTeacher(int index, Teacher tea) {
        //使用标记位思想,默认修改失败
        boolean flag = false;
        //修改集合中指定位置的元素
        list.set(index, tea);
        //判断是否修改成功
        if (list.get(index).getBirthday().equals(tea.getBirthday())) {
            flag = true;
        }
        //保存集合中的数据到文件中
        reSave();
        //返回修改的结果
        return flag;
    }

    //获取老师登录的账户信息
    public Properties selectAccounts() {
        Properties prop = null;
        try {
            //创建集合对象
            prop = new Properties();
            //创建字符输入流
            FileReader fr = new FileReader("黑马学生管理系统3\\tealogin.properties");
            //集合加载流
            prop.load(fr);
            //关闭流
            fr.close();
            //返回集合
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            return prop;

        }
    }

    //查找所有老师对象
    public ArrayList<Teacher> selectTeacher() {
        return list;
    }


}
